home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / mqueue.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  56 lines

  1. /* Copyright (C) 2003 Krzysztof Benedyczak & Michal Wronski
  2.  
  3.    This program is free software; you can redistribute it and/or
  4.    modify it under the terms of the GNU Lesser General Public
  5.    License as published by the Free Software Foundation; either
  6.    version 2.1 of the License, or (at your option) any later version.
  7.  
  8.    It is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.    Lesser General Public License for more details.
  12.  
  13.    You should have received a copy of the GNU Lesser General Public
  14.    License along with this software; if not, write to the Free
  15.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  16.    02111-1307 USA.  */
  17.  
  18. #ifndef _LINUX_MQUEUE_H
  19. #define _LINUX_MQUEUE_H
  20.  
  21. #include <linux/types.h>
  22.  
  23. #define MQ_PRIO_MAX     32768
  24. /* per-uid limit of kernel memory used by mqueue, in bytes */
  25. #define MQ_BYTES_MAX    819200
  26.  
  27. struct mq_attr {
  28.     long    mq_flags;    /* message queue flags            */
  29.     long    mq_maxmsg;    /* maximum number of messages        */
  30.     long    mq_msgsize;    /* maximum message size            */
  31.     long    mq_curmsgs;    /* number of messages currently queued    */
  32.     long    __reserved[4];    /* ignored for input, zeroed for output */
  33. };
  34.  
  35. /*
  36.  * SIGEV_THREAD implementation:
  37.  * SIGEV_THREAD must be implemented in user space. If SIGEV_THREAD is passed
  38.  * to mq_notify, then
  39.  * - sigev_signo must be the file descriptor of an AF_NETLINK socket. It's not
  40.  *   necessary that the socket is bound.
  41.  * - sigev_value.sival_ptr must point to a cookie that is NOTIFY_COOKIE_LEN
  42.  *   bytes long.
  43.  * If the notification is triggered, then the cookie is sent to the netlink
  44.  * socket. The last byte of the cookie is replaced with the NOTIFY_?? codes:
  45.  * NOTIFY_WOKENUP if the notification got triggered, NOTIFY_REMOVED if it was
  46.  * removed, either due to a close() on the message queue fd or due to a
  47.  * mq_notify() that removed the notification.
  48.  */
  49. #define NOTIFY_NONE    0
  50. #define NOTIFY_WOKENUP    1
  51. #define NOTIFY_REMOVED    2
  52.  
  53. #define NOTIFY_COOKIE_LEN    32
  54.  
  55. #endif
  56.